﻿using System;
using System.Data;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using Telerik.Web.UI;
using KPIS.GERP.GHRMS.BLL;
using KPIS.GERP.GHRMS.IBLL;
using KPIS.GERP.GHRMS.MODEL;
namespace KPIS.GERP.GHRMS.APP.App_UI.Forms
{
    public partial class RC_CommandDtls : System.Web.UI.Page
    {
        private SsMng ssMng = new SsMng();
        private ICommandBLL cmdBLL = new CommandBLL();
        private ICommandDetailBLL dtlsBLL = new CommandDetailBLL();
        private CommandInfo cmdInfo = new CommandInfo();
        protected void Page_Load(object sender, EventArgs e)
        {
            IncludeJava();

            if (!Page.IsPostBack)
            {
                bool bDraft = false;

                lblCmdSeq.Text = Request.QueryString["CmdSeq"].ToString();

                //IList<CommandInfo> infoList = cmdBLL.ListCommand(SystemInfo._CmdEmployee, Int32.Parse(lblCmdSeq.Text.Trim()), (int?)null, (int?)null);
                DataSet ds = cmdBLL.LoadCommands(SystemInfo._CmdEmployee, Int32.Parse(lblCmdSeq.Text.Trim()), (int?)null, (int?)null);
                DataRowCollection drc;

                if (ds.Tables.Count > 0)
                {
                    drc = ds.Tables[0].Rows;
                    lblRptHeader.Text = drc[0]["RPT_HEADER"].ToString();
                    lblName.Text = drc[0]["CMD_HEADER"].ToString();
                    lblEmpType.Text = drc[0]["EMP_TYPE_SEQ"].ToString();
                    lblCmdType.Text = drc[0]["CMD_TYPE_SEQ"].ToString();
                    bDraft = drc[0]["CMD_STATUS"].ToString() == SystemInfo._WorkRecordStatus;
                }

                lblRptHeader.Visible = bDraft;
                lblName.Visible = !bDraft;
                LoadDataGrid();
            }

        }
        public void IncludeJava()
        {
            HtmlGenericControl script = new HtmlGenericControl();
            script.TagName = "script";
            script.Attributes.Add("type", "text/javascript");
            script.Attributes.Add("src", "../../Scripts/jsfunction.js");
            Page.Header.Controls.Add(script);
        }
        public void LoadDataGrid()
        {
            string CmdTypeSeq = lblCmdType.Text.Trim();
            switch (CmdTypeSeq)
            {
                case "101"://คำสั่งบรรจุผู้สอบแข่งขันได้***
                    ViewState["ReportName"] = "RPT_CMD_1-1";
                    RadGrid1.MasterTableView.EditFormSettings.UserControlName = "../UserControls/RC_CmdPlacementExam.ascx";
                    break;
                case "102"://คำสั่งบรรจุผู้ได้รับคัดเลือก***
                    ViewState["ReportName"] = "RPT_CMD_1-2";
                    RadGrid1.MasterTableView.EditFormSettings.UserControlName = "../UserControls/RC_CmdPlacementSelect.ascx";
                    break;
                case "108"://คำสั่งบรรจุข้าราชการพลเรือนสามัญกลับเข้ารับราชการ***
                    ViewState["ReportName"] = "RPT_CMD_1-8";
                    RadGrid1.MasterTableView.EditFormSettings.UserControlName = "../UserControls/RC_CmdComeBack.ascx";
                    break;
                case "201"://คำสั่งย้ายข้าราขการ***
                    ViewState["ReportName"] = "RPT_CMD_2-1";
                    RadGrid1.MasterTableView.EditFormSettings.UserControlName = "../UserControls/RC_CmdMove.ascx";
                    break;
                case "202"://คำสั่งย้ายข้าราชการพลเรือนซึ่งได้รับวุฒิเพิ่มขึ้น***
                    ViewState["ReportName"] = "RPT_CMD_2-2";
                    RadGrid1.MasterTableView.EditFormSettings.UserControlName = "../UserControls/RC_CmdMove.ascx";
                    break;
                case "203"://คำสั่งย้ายไปดำรงตำแหน่งระดับ 7 และระดับ 8 เพื่อเพิ่มพูนประสบการณ์
                    RadGrid1.MasterTableView.EditFormSettings.UserControlName = "../UserControls/RC_Transfers.ascx";
                    break;
                case "301"://คำสั่งรับโอนข้าราชการพลเรือนสามัญ***
                    ViewState["ReportName"] = "RPT_CMD_3-1";
                    RadGrid1.MasterTableView.EditFormSettings.UserControlName = "../UserControls/RC_CmdTransferee.ascx";
                    break;
                case "302"://คำสั่งรับโอนข้าราชการพลเรือนสามัญผู้ได้รับวุฒิเพิ่มขึ้น***
                case "304"://คำสั่งรับโอนข้าราชการพลเรือนสามัญผู้สอบแข่งขันได้***
                    ViewState["ReportName"] = "RPT_CMD_3-2";
                    RadGrid1.MasterTableView.EditFormSettings.UserControlName = "../UserControls/RC_CmdTransferQualPlus.ascx";
                    break;
                case "303"://คำสั่งรับโอนข้าราชการพลเรือนสามัญมาดำรงตำแหน่งในระดับที่สูงขึ้น***
                    ViewState["ReportName"] = "RPT_CMD_3-3";
                    RadGrid1.MasterTableView.EditFormSettings.UserControlName = "../UserControls/RC_CmdTransferee.ascx";
                    break;
                case "305"://คำสั่งให้โอน***
                    ViewState["ReportName"] = "RPT_CMD_3-5";
                    RadGrid1.MasterTableView.EditFormSettings.UserControlName = "../UserControls/RC_CmdTransferor.ascx";
                    break;
                case "401"://คำสั่งเลื่อนข้าราชการ***
                    ViewState["ReportName"] = "RPT_CMD_4-1";
                    RadGrid1.MasterTableView.EditFormSettings.UserControlName = "../UserControls/RC_CmdGrow.ascx";
                    break;
                case "900"://คำสั่งรักษาราชการแทน
                    ViewState["ReportName"] = "RPT_CMD_9-0";
                    RadGrid1.MasterTableView.EditFormSettings.UserControlName = "../UserControls/RC_CmdKeep.ascx";
                    break;
                case "402"://คำสั่งรักษาราชการในตำแหน่ง
                    ViewState["ReportName"] = "RPT_CMD_10-0";
                    RadGrid1.MasterTableView.EditFormSettings.UserControlName = "../UserControls/RC_CmdKeep.ascx";
                    break;
                case "1701"://คำสั่งลาออก***
                    ViewState["ReportName"] = "RPT_CMD_17-1";
                    RadGrid1.MasterTableView.EditFormSettings.UserControlName = "../UserControls/RC_CmdQuit.ascx";
                    break;
            }

            DataSet ds = dtlsBLL.LoadCommandDetails((int?)null, Convert.ToInt32(lblCmdSeq.Text.Trim()), (int?)null);
            DataTable dt = ds.Tables[0];

            RadGrid1.DataSource = dt;
            RadGrid1.DataBind();
        }

        protected void RadGrid1_ItemCommand(object source, GridCommandEventArgs e)
        {
            if (e.CommandName == "Delete")
            {
                int Sequence = Convert.ToInt32((e.Item as GridDataItem).OwnerTableView.DataKeyValues[e.Item.ItemIndex]["cmd_dtls_seq"]);

                dtlsBLL.Delete(Sequence, ssMng.EmpSeqI);
            }
            else if (e.CommandName == "PrintPreview")
            {
                DataTable dt = null;
                DataSet ds = dtlsBLL.LoadCommandDetailReports(Convert.ToInt32(lblCmdSeq.Text.Trim()));
                if (ds.Tables.Count > 0)
                    dt = ds.Tables[0];

                Session["dtReport"] = dt;
                ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "onclick", "openReport('" + ViewState["ReportName"] + "')", true);
                return;
            }
            Session["CMD"] = lblCmdSeq.Text.Trim();
            Session["CMDTYPE"] = lblCmdType.Text.Trim();
            Session["EMPTYPE"] = lblEmpType.Text.Trim();
            LoadDataGrid();
        }
        
    }
}
